1. Field of the Invention
The present invention relates generally to computer system applications, and, more particularly, to a method and apparatus for facilitating navigation in three-dimensional scenes in a computer graphics application via control options to a user.
2. Description of the Related Art
Three-dimensional graphics technology has become increasingly popular for a variety of purposes over the past several years. Currently, 3D graphics are used extensively in design-related applications such as architecture and engineering. They are also used in scientific investigations such as the re-creation of airplane crash disasters and for recreational-type activities such as computer games.
Three-dimensional graphics provide an individual with a realistic perspective of how various objects appear (and perhaps even dynamically inter-relate) in a virtual setting, providing a significant advantage over traditional two-dimensional graphics. As a result, three-dimensional graphics usage has undergone explosive growth and the sophistication of these graphics provide an indispensable tool for the user.
One significant limitation of three-dimensional graphics, however, is the movement and positioning of a user within a 3D scene, which is commonly referred to as navigation. Numerous factors contribute to the user's inability to effectively navigate in a 3D scene. For example, the use of inappropriate input devices for such navigation, inadequate visual feedback to the user, and limited user coordination has made 3D navigation both awkward and frustrating.
To alleviate the shortcomings associated with navigation, a technique known as functional (or task-orientated) navigation was developed. Functional navigation provides navigational aids to the user that relate to the user's position or purpose in the 3D scene. For example, selecting an object in a 3D scene (via a user-input device) could cause the user's viewing position in the scene to be automatically re-oriented to an appropriate viewing distance from the selected object. Such functional navigation essentially automates the traditional "manual" navigation process and has been pioneered by the computer game industry.
Although functional navigation has greatly improved a user's ability to navigate, it also suffers from several disadvantages. Currently, almost every action by the user in a 3D scene requires that the user reposition the cursor (or pointer) on the display screen. Whether done with a mouse, trackball, tablet, or some other means, positioning this cursor is one of the most time consuming and tiring operations associated with 3D graphics programs. First, the user must locate the cursor on the display screen. Then, the user has to reposition the cursor to a location on the screen to select a desired object or control. Typically, this involves "overshooting" the desired object or control, in which case, the user has to correct the overshoot to select the object or control. By performing such operations, the user suffers a cognitive discontinuity, concentrating more on positioning the cursor in the scene as opposed to concentrating on the 3D scene itself. Moreover, by selecting such object or control, the 3D scene changes. Thus, other objects that may have been viewed in the initial 3D scene (i.e., prior to selection), may no longer be visible in the newly generated 3D scene (i.e., subsequent to selection). Consequently, such objects that are no longer visible in the newly generated 3D scene become difficult to subsequently retrieve.